package electricity.service;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import electricity.domain.Permission;
import electricity.domain.Role;
import electricity.dto.RoleQueryDto;
import electricity.mapper.PermissionMapper;
import electricity.vo.PageResult;

import java.util.List;

public interface PermissionService {
    public List<String> getCurrentAccountPermissionCodes();
    List<String> getPermissionCodesByUserId(Integer userId);
    /**
     * 新增角色
     * @param role 角色实体
     */
    void addRole(Role role);

    /**
     * 更新角色
     * @param role 角色实体
     */
    void updateRole(Role role);

    /**
     * 删除角色（含权限关联）
     * @param id 角色ID
     */
    void deleteRole(Integer id);

    /**
     * 查询角色拥有的权限ID
     * @param roleId 角色ID
     * @return 权限ID列表
     */
    List<Integer> getRolePermissionIds(Integer roleId);

    /**
     * 保存角色权限关联
     * @param roleId 角色ID
     * @param permissionIds 权限ID列表
     */
    void saveRolePermissions(Integer roleId, List<Integer> permissionIds);

    /**
     * 查询所有权限（4个顶级权限）
     * @return 权限列表
     */
    List<Permission> getAllPermissions();
}
